/**
** @version 1.0
** @package FACTURAPYMES.
* @author Jorge Washington Mueses Cevallos.
* @copyright Copyright (C) 2011 por Jorge Mueses. Todos los derechos reservados.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL.
** FACTURAPYMES es un software de libre distribución, que puede ser
* copiado y distribuido bajo los términos de la Licencia
* Attribution-NonCommercial-NoDerivs 3.0 Unported,
* de acuerdo con la publicada por la CREATIVE COMMONS CORPORATION.
*/

package com.far.aus.adm.pdf;

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.ResultSet;
import com.far.lib.Pdf;

import com.far.lib.BaseDatos;
import com.far.lib.Fecha;

/**
 *
 * @author Jorge
 */
public class PdfConsolidadoAuspicio extends HttpServlet {
    private String _ip = null;
    private int _puerto = 5432;
    private String _db = null;
    private String _usuario = null;
    private String _clave = null;

    public void init(ServletConfig config) throws ServletException
    {
        this._ip = config.getServletContext().getInitParameter("_IP");
        this._puerto = Integer.parseInt(config.getServletContext().getInitParameter("_PUERTO"));
        this._db = config.getServletContext().getInitParameter("_DB");
        this._usuario = config.getServletContext().getInitParameter("_USUARIO");
        this._clave = config.getServletContext().getInitParameter("_CLAVE");
    }

    /**
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("application/pdf");
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Expires", "Mon, 01 Jan 2001 00:00:01 GMT");
        response.setHeader("Cache-Control", "no-store");
        response.setHeader("Cache-Control", "must-revalidate");
        response.setHeader("Cache-Control", "no-cache");

        String fecha_ini = request.getParameter("repFi");
        String fecha_fin = request.getParameter("repFf");
        String id_tipo_plan = request.getParameter("repIdTP");
        String estado = request.getParameter("repEst");
        String proveedor = request.getParameter("provReporte")!=null ? request.getParameter("provReporte") : "";
        String num_auspicio = request.getParameter("repNum_aus");
        
        String where = "where";
        
        if(fecha_ini.compareTo("")!=0 && fecha_fin.compareTo("")!=0){
             where += " CONVERT(VARCHAR, fecha_creacion, 103) between '"+Fecha.ISOaSQL(fecha_ini)+"' and '"+Fecha.ISOaSQL(fecha_fin)+"'";
        }else{
            if(fecha_ini.compareTo("")!=0 && fecha_fin.compareTo("")==0){
                 where += " CONVERT(VARCHAR, fecha_creacion, 103) >= '"+Fecha.ISOaSQL(fecha_ini)+"'";
            }else{
                if(fecha_ini.compareTo("")==0 && fecha_fin.compareTo("")!=0){
                     where += " CONVERT(VARCHAR, fecha_creacion, 103) <= '"+Fecha.ISOaSQL(fecha_ini)+"'";
                }
            }
        }
        
        if(id_tipo_plan.compareTo("0")!=0){
             where += (where.compareTo("where")!=0 ? " and" : "") + " id_tipo_plan='"+id_tipo_plan+"'";
        }
        if(estado.compareTo("")!=0){
             where += (where.compareTo("where")!=0 ? " and" : "") + " estado='"+estado+"'";
        }
        if(proveedor.compareTo("0")!=0 && proveedor.compareTo("")!=0){
             where += (where.compareTo("where")!=0 ? " and" : "") + " proveedor='"+proveedor+"'";
        }
        
        if(where.compareTo("where")==0){
            where = "";
        }
        
        if(num_auspicio.compareTo("")!=0){
             where = "where num_auspicio='"+num_auspicio+"'";
        }

        BaseDatos objDB = new BaseDatos(this._ip, this._puerto, this._db, this._usuario, this._clave);
        ResultSet registros = objDB.consulta("select num_auspicio, plan_actividad, txt_fecha_creacion, txt_fecha_confirmacion, "+
        "txt_fecha_anulacion, txt_estado, proveedor, tipo_plan , txt_tipo_confirmacion, subtotal_act, iva_act, total_act, forma_pago, usuario_creacion " +
        "from vta_auspicio_actividad_detalle " +
        where +
        " order by num_auspicio");
        
        String titulo = "FARMAENLACE";
        String ruc = "RUC: 1791984722001";
        String subtitulo = "Consolidado de Auspicios";
        String direccion = "AV. CAPITAN RAFAEL RAMOS E2-210 Y CASTELLI";
        String pie_pag = "Ecuador";
        Pdf objPdf = new Pdf(false, titulo, ruc, subtitulo, direccion, pie_pag);
        
        String [] cabTabla = new String [] {"No.", "No. DE AUSPICIO", "PLAN DE ACTIVIDADES", "FECHA DE CRACION", "FECHA DE CONFIRMACION", 
            "FECHA DE ANULACION", "ESTADO", "PROVEEDOR", "TIPO DE AUSPICIO", "TIPO DE CONFIRMACION", "SUB-TOTAL", "IVA", "TOTAL", 
            "FORMA DE PAGO", "USUARIO DE CREACION"};
        float [] anchoTabla = new float[]{25f, 65f, 120f, 65f, 65f, 65f, 70f, 120f, 100f, 60f, 50f, 50f, 50f, 90f, 75f};
        int [] alineaciones = new int[]{0,0,0,0,0,0,0,0,0, 0,2,2,2,0,0};
        objPdf.lista(response, registros, cabTabla, anchoTabla, alineaciones);
        

        try{
            registros.close();
        }catch(Exception e){
            e.printStackTrace();
        }

        objDB.cerrar();
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}
